import unittest

from parameterized import parameterized

import utils
from api.sector_api import Sector
from api.login_api import LoginApi


class TestEmp(unittest.TestCase):

    def setUp(self) -> None:
        # 实例化封装的类
        self.token = LoginApi().get_token({"mobile": "13800000001", "password": "123456"})
        self.sec_api = Sector(self.token)

    # 部门管理-增，删，改，查
    @parameterized.expand(utils.read_json("sec_case_data"))
    def test01_emp_manage(self, add_sec_dict, update_exp, exp_success, exp_code, exp_msg):
        # 1.调用封装新增部门的方法，获取响应数据
        add_sec = self.sec_api.add_sec(add_sec_dict)
        add_emp_dict = add_sec.json()

        # 断言
        utils.common_assert(self, add_sec, exp_success, exp_code, exp_msg)
        # 3.调用封装查询部门的方法，获取响应数据
        query_sec = self.sec_api.query_sec(add_emp_dict.get("data").get("id"))
        # 断言
        utils.common_assert(self, query_sec, exp_success, exp_code, exp_msg)
        # 4.调用封装修改部门的方法，获取响应数据
        update_sec = self.sec_api.update_sec(add_emp_dict.get("data").get("id"), update_exp)

        # 断言
        utils.common_assert(self, update_sec, exp_success, exp_code, exp_msg)
        # 5.调用封装删除部门的方法，获取响应数据
        delete_sec = self.sec_api.delete_sec(add_emp_dict.get("data").get("id"))

        # 断言
        utils.common_assert(self, delete_sec, exp_success, exp_code, exp_msg)
